import CryptoJS from 'crypto-js';

function getAndDecryptDataFromStorage(key) {
	  // 对于uni-app，你可以使用uni.getStorage或uni.getStorageSync来获取数据
	  // 这里我们使用异步版本作为示例
	  uni.getStorage({
	      key: key,
	      success: function (res) {
	          const encryptedData = res.data;
	          const decryptedData = decryptData(encryptedData, secretKey);
	          console.log('Decrypted Data:', decryptedData);
	      },
	      fail: function (err) {
	          console.error('Failed to get data:', err);
	      }
	  });
	};
function decryptData(encryptedData, secretKey) {
   // 从加密数据中分离IV和密文
   const [ivBase64, encryptedBase64] = encryptedData.split(':');
   const key = CryptoJS.enc.Utf8.parse(secretKey);
   const iv = CryptoJS.enc.Base64.parse(ivBase64);
   const encrypted = CryptoJS.enc.Base64.parse(encryptedBase64);
   
   const decrypted = CryptoJS.AES.decrypt({
       ciphertext: encrypted
   }, key, {
       iv: iv,
       mode: CryptoJS.mode.CBC,
       padding: CryptoJS.pad.Pkcs7
   });
   
   return decrypted.toString(CryptoJS.enc.Utf8);
			};
export function encryptData(data, secretKey) {
	    const key = CryptoJS.enc.Utf8.parse(secretKey);
	    const iv = CryptoJS.lib.WordArray.random(16); // 生成随机IV
	    const encrypted = CryptoJS.AES.encrypt(data, key, {
	        iv: iv,
	        mode: CryptoJS.mode.CBC,
	        padding: CryptoJS.pad.Pkcs7
	    });
	    // 将IV转换为Base64字符串并附加到密文上（在实际应用中，你可能需要更安全的方式来存储IV）
	    const ivBase64 = iv.toString(CryptoJS.enc.Base64);
	    const encryptedBase64 = encrypted.toString();
	    return `${ivBase64}:${encryptedBase64}`;
			};
			 
			// 存储加密数据到本地存储
export function  saveEncryptedDataToStorage(key, encryptedData) {
	   // 对于uni-app，你可以使用uni.setStorage或uni.setStorageSync来存储数据
	   // 这里我们使用异步版本作为示例
	   uni.setStorage({
	       key: key,
	       data: encryptedData,
	       success: function () {
	           console.log('Data saved successfully');
	       },
	       fail: function (err) {
	           console.error('Failed to save data:', err);
	       }
	   });
			}